#ifndef _TASK_
#define _TASK_

#include <functional>
#include <string>

typedef std::function<void (int, std::string&, uint16_t)> func_;

// 任务类型 - 仿函数
class Task
{
public:
    Task() = default;
    Task(int sock, std::string ip, uint16_t port, func_ func):_sock(sock), _ip(ip), _port(port), _func(func)
    {}
    void operator()()  // 重载() - 仿函数
    {
        _func(_sock, _ip, _port);
        return;
    }

    int _sock;
    std::string _ip;
    uint16_t _port;
    func_ _func;
};

#endif